Desperation in desolation ; Or, the woes of the contemporary entrepreneur ; Or, what came of my first attempt at running the second generation Eulora client. Ornery, in any case.

Saturday, 12 September, Year 12 d.Tr. | Author: Mircea Popescu

Gnarly, you know this word ? At about the time "awesome" became the meaningless token of ready retards' handshakes, "gnarly" became some kind of its polar opposite. A word for the unpleasant, vaguely nauseating complexity of no value and no import. Improfitable, ahistorical, the direct female equivalent of the "awesome" last gasp. Gnarly foeti an' awesome sunsets (or whatever cosmic phenomena), that'd be the 2000s in bijocular summary.

But... it's not the 2000s, anymore. The year's been 2020 for long enough it's about to change, 2021's no doubt gonna bring more of the same (but less of everything)... The desperation's well seated at the table, no doubt about that. Let's see about the desolation then, might as well deliver the complete menu, as promised, a la carte.

So : back on June 4 I made the call that diligent effort intervening had meanwhile accumulated to the point of resembling enough a workable a solution to the fundamental problem we had encountered earlier (and is perhaps best summarized on January 23) to justify taking a closer look. At that juncture, three months ago, the Eulora server v2.0 had for a while been steadily running in a private environment, insulating it from the insanity that is "computing" ; and Diana had been running a private client v2.0 for her own testing needs, on a CentOs 6. In such a context one might be perhaps excused for thinking that "alright, make me a client I can run here myself" is not exactly an unreasonable work order, especially garnished with "I don't care what OS you want for it to sit in or anything else, really, it can have its own machine". I mean... two weeks, right ?

By appointment we sat down Thursday, each with something like half a day cleared & readily at their disposal, to hopefully get through this triviality of a task as soon as possible and move on. Well... not so fast, right ? I mean, you know where this is going, and exactly, for having had some experience of your own with, to quote,

In a major reversal, former Microsoft CEO Steve Ballmer, who had called Linux a "cancer" that attaches itself to the intellectual property of everything it touches back in 2001, has commended his former company's latest move toward open sores, their own reinterpretation of the meanwhile defunct open source movement.

Earlier this week, when Microsoft announced its SQL Server will run on Ubuntu, Ballmer sent an email to Microsoft's CEO Satya Nadella saying he "loved" the announcement, according to a Reuters report. Speaking at a dinner Wednesday hosted by Fortune, Ballmer told the attendees that his earlier stance on Linux was right for the time but that now that kind of Linux was "in the rearview mirror," according to Reuters.

Indeed so :

  1. Our first attempt occured on a moderni Debian upon which I attempted to install a heftyii list of "needed" packages, which broadly succeedediii. The idea was to proceed with our own, gnat-based build environmentiv, because obviously gcc 5 and over can't actually compile anything. This failed in practice, because of a quite unexpected
    4.9.4/ld final link failed
    unrecognized relocation 0x2a in .init

    which left us grasping at straws. A well supplied sea of straws -- maybe the PATH reference is to be like this not like that ?v Maybe the directory permissions aren't right ? Maybe your mother was a whore ? It was obvious enough there's some sort of superficial, administrative, purely bureaucratic semi-permeable membrane between us and the intended cake, but the sea of entirely spurious "options" "available" to "fix" what shouldn't exist in the first place is... well, just vast enough. Right ?

  2. Thus therefore, three hours in both ways, making a grand total of six hours' worth of engineer timevi we had to bow to the obvious : the notion of gnat as a "build environment" is laughable on the facevii ; and we settled on a hail mary attempt of importing pre-made binary version of various custom libraries, to link with the actual project locally -- not out of any great expectation of anything besides getting a better notion of the shape of the hole in human thought left behind the varmintsviii. This also failed, and in the same manner.
  3. Along with my observation that I do not believe actually functional systems still exist anywhere, but merely systems broken in ways the idiot "sysadmining" them hasn't yet discovered, it was then decided that in preference of undertaking yet another sea drinking project I'll just replicate her working environment ; and thereby releasing Diana to her own affairs I put a hold on Hannah, who was now to install CentOS 6 on the box in question. Perhaps one day she recounts the tribulations involved in that nonsense ; I'll limit myself to the discussion of my end : CentOS is not a distribution in any meaningful senseix.
  4. The next day, after as you might have guessed multiple engineer-days already wasted in the pursuit of a computer working to the standard of doing what I want, not what it wants, and having had the partitions imbecile centos destroyed reinstated, we're in a prime position to restart the discussion at the "why the fuck is gnat using system ld, when it has its own ld bundled anyways" juncture. This matter was never resolved, nobody can fucking explain why nor does anyone seem to exist who's ever considered such things. Because why should they, right ? Meanwhile however the error's been traced : 0x2a ie relocation42 is R_X84_64_REX_GTPCRELX, and comes to us from binutils 2.26x, aforewhich it didn't exist.
  5. Needless to say, asking GNAT to pretty please, with sugar on top, use its own fucking ld, which it comes with doesn't fix anything -- I mean the directories change, but otherwise
    /home/lordmpoftmsr/eulora2/gnat/bin/../libexec/gcc/x86_64-pc-linux-gnu/4.9.4/ld: /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o: unrecognized relocation (0x2a) in section `.init'
    /home/lordmpoftmsr/eulora2/gnat/bin/../libexec/gcc/x86_64-pc-linux-gnu/4.9.4/ld: final link failed: Bad value
    collect2: error: ld returned 1 exit status

    Nor is downgrading binutils, nor is downgrading make itself (which yes, is something I know how to do, just like I know how to rescue partition tables some idiot distribution over-wrote as part of its natural functioning) to the exact version her "working" system happened to have (ie, from 4.1 to 3.81) actually fix it ; no code can be linked and fuck you, compilation is no longer a possibility in this brave new world Dancing Monkeyboy "loves".

So I threw my hands up in the air, at the point two women had laboured whole days for my satisfaction -- a satisfaction which they never got to see, I ended up every day more frustrated than a bagful of internet whiteknightsxi. Days, you understand me ? Plural. We've exchanged -- I'm not counting the automatically generated "textual" spew, in the megabytes ; I'm not counting viva voce allocution, with its decibels. I'm just counting the words written down by thinking minds' hands, like the words here ; we've exchanged 22`687 words to not manage to make this thing "work" that had no business not working or taking any "making to work" in the first place -- and speaking of which, do me a fucking favour : if "you know" what "the solution is", just go fucking hang yourself.

I'm not even fucking kidding, the only thing more shamefully, just out and out shamefully miserable, than knowing what all this bullshit is, is having made it in the first place. Violently raping twelve year olds to death isn't even on the list. It's not in the same top ten. The first, the foremost thing that turns man into monstrous non-man is cognitive involvement with this pile of shit ; and there is no excuse. So yes, I very much mean it : if "you know what the solution is" do the world a fucking favour and kill yourself, you piece of shit you.

Anyways, I've no doubt Diana will manage to package me something, after working way the fuck harder than she needs to at pointless nonsense that had absolutely no business existing in the first place. But -- not today.

Today, desperation in desolation ; and fuck all'yall.

———
  1. Sep 10 19:04:10 <diana_coman> tu ce versiune de gcc ai in sistem?
    Sep 10 19:04:18 <mircea_popescu> acum ma uit
    Sep 10 19:04:51 <mircea_popescu> 7.5 o.o
    Sep 10 19:04:57 <diana_coman> lmao
    Sep 10 19:05:08 <mircea_popescu> plm noa da-le nota. []
  2. 267 MB, pai ce-i aia... []
  3. Excepting things like "libpng-12-dev has no installation candidate" means you gotta know it's just called libpng-dev, "now", or "here", or whatever ; or more bluntly "selecting libcal3d12-dev instead of libcal34-dev" "should be okay" and so on etcetera. I mean, it's 3d12, how bad can it be, sword of infinity minus one, right ? []
  4. Which, incidentally, is supplied as a binary. I don't mean "in my case" ; I mean in all cases, there's no such thing as "compiled" gnat, everyone's got a binary gnat in the exact same sense as this binary gnat I used here. I am aware you might like to pretend otherwise, but in point of fact there's no bootstrap chain available, if you're "compiling" "your own" gnat you're still doing it on a binary you got from somewhere, yes ? So then... fucking spare me, aite ? []
  5. Specifically : export LD_LIBRARY_PATH=/home/lordmpoftmsr/eulora2/gnat/lib64:$LD_LIBRARY_PATH ? Or export LD_LIBRARY_PATH=/home/lordmpoftmsr/eulora2/gnat/lib:$LD_LIBRARY_PATH ? Well, which is it ? And why ? And are you sure ? []
  6. You think lawyers bill insanely ? You should see what I used to charge, back when I could still be bothered to take custom. []
  7. The words spoken being
    Sep 10 20:34:34 <mircea_popescu> tu deci... precit se vadeste visu' nostru frumos ca om putea cumva compila nu tine.
    Sep 10 20:35:30 <mircea_popescu> auzi, tu daca faci direct obiect binar cal3d / cs ?

    Sep 10 20:35:36 <diana_coman> ce ma seaca e ca nu pricep chiar bine ce bucata ii e lipsa/ia din sistem sau cum
    Sep 10 20:35:46 <mircea_popescu> io ce nu pricep ii ce o luat DE LA TINE

    Sep 10 20:35:54 <diana_coman> adica?
    Sep 10 20:35:55 <mircea_popescu> pentru ca sa-ti zic ceva, asta cu "compulat in gnat" e un pipe dream. el nu compileaza IN gnat. el compileaza in ce sistem ai. al tau merge si al meu nu merge, dar gnat e asa, tichie pe cacat.

    Sep 10 20:36:13 <diana_coman> de acord; da' gnat are gcc. al lui, acolo.
    Sep 10 20:36:22 <mircea_popescu> degeaba

    Sep 10 20:36:26 <diana_coman> si glibc si alea
    Sep 10 20:36:24 <mircea_popescu> poa avea si popcorn. faptu' ca are de aratat nu inseamna ca are in sensul de avut folosit aici. ca uite ca nu are. si eu asa zic, ca el la fel nu are peste tot.

    Sep 10 20:36:52 <diana_coman> asa ma rog, pe undeva m-am cam uitat eu stramb da' stand drept ca zau daca nu e si gnat fix a la stan
    Sep 10 20:36:56 <mircea_popescu> nu-s eu special doar pentru ca-s simptomatic.
    Sep 10 20:37:07 <mircea_popescu> ma-ntelegi cum zic ?

    Sep 10 20:37:18 <diana_coman> apai eu nu zic ca esti tu problema acolo, lol
    Sep 10 20:37:44 <mircea_popescu> noa, si atunci noi de fapt avem o problema, si e structurala : compilat "in" gnat nu exista mai mult decit compilat "in" nano. faptu' ca tu te uiti la ceva in nano nu e relevant.

    Sep 10 20:37:35 <diana_coman> tu, eu pot sa zic ca iti pun acolo .so si de la cal3d si de la cs da' ... o merge apoi sau nu, n-am idee. stii cum zic? da' in fine, nu-i nimic de pierdut sa incercm posibil, ma gandesc
    Sep 10 20:38:03 <mircea_popescu> pai da sa vedem, daca ne am apucat.

    Sep 10 20:38:19 <diana_coman> bine, deci sa iau ce lib am eu si sa le pun si pe alea pt download, da? sa vad cat or fi si alea de uriase, lol
    Sep 10 20:38:25 <mircea_popescu> pls.

    Sep 10 20:38:50 <diana_coman> cu nenorocirea ca la cs nici nu-i doar una, pfuai
    Sep 10 20:39:04 <mircea_popescu> heh. fa si tu un tar. nu stau sa tot sha 500 de cacacele

    Sep 10 20:39:39 <diana_coman> pai nici nu, numai ca ...ce dracu iau de acolo, cam aia
    Sep 10 20:40:06 <mircea_popescu> e, vezi si tu, eu oricum sunt prin zona, nu e bai

    []

  8. For a long while "smart" morons, the sort that read the cheapest dictionary and populate bureaucracies readily agreed human hunger is a problem, in the manner these agree on anything -- for to have had something agreed upon, and in that agreement assuage, at least to themselves and in their worthless estimation, their countless many maculant shortcomings & damnations.

    At first this was just idle prattle of the sort typical to them ; but over time the moron enabler, the human bovine, adding effort upon piled effort eventually got us to this cursed state wherein hunger is no longer a concern for the mass. Far, quite very fucking far from the age of wonder and "unleashed human potential" this misfortunate state of affairs was supposed to bring upon us, the cold reality of the matter is that humanity without hunger reverts to something rather akin plants. The vegetative state and manner of the moronic subhumans, now empowered by a sort of photosynthesis substitute enacted through the femstate's food pellet dispensaries, has torn an undenyable hole in the very fabric of existence, leaving us behind to probe at the margins, while they "mobilize" to "fight the war" on... not staying at home. []

  9. The actual discussion :

    Sep 11 14:13:25 <mircea_popescu> deci tu, io nu cred ca centos poate fi o distributie. ma bucur mult ca-ti merge tie anume, dar e o gluma proasta cam din toate motivele posibile. ti le enumar ?
    Sep 11 14:13:42 <diana_coman> deja le-am cam auzit mai dinsus, zic. si-mi cam pare rau ca te-am varat in nebunia aia, ce sa mai zic

    Sep 11 14:13:58 <mircea_popescu> hai sa zic clar si explicit decit asa infuriat, si pe indelete, sa stim ce facem. pe urma intr-un an avem concret.
    Sep 11 14:14:04 <diana_coman> ascult
    Sep 11 14:14:44 <mircea_popescu> deci 1. e fix gnome. nu e "linux", nu e "centos". e GNOME. gnome e porcaria aia din ubuntu, cu "network applet manager", de exemplu. nu exista "linux grafic" ca toate is X, si nu exista linux-windows. ca toate is gnome. daca e sa pui gnome pe calculator -- nu, NU linux ; nu, NU "distributie". e gnome, plm. atunci mai bine pui ubuntu, ca e a lor. tot asa cum daca ma apuc de marxism citesc direct in rusa, ce plm sa fac io cu marxism cubanez.
    Sep 11 14:15:45 <diana_coman> este ce zici

    Sep 11 14:16:21 <mircea_popescu> 2. nu are grub2. are grub legacy. tu stii ce pula mea inseamna aia ?! nu poate citi cam toate partiile. pe bune acuma. nu e capabil de nimic, nu are set, nu are ls, daca e de o panica mori cu el acolo. tu i-ai vazut shellu la grub legacy ? intra o data de curiozitate, e o traznaie imposibila din 94. daca e sa ceva, cum plm rescue un system fara set, fata tabcomplete, fara ls, fara absolut nimic ? revenim la cind dura doua zile sa salvezi un sistem busit ?
    Sep 11 14:17:30 <diana_coman> eu de cand am renuntat la ideea ca exista un sistem de operare pe bune, am renuntat si la pretentia ca partitii ca alea, le dau fiecaruia un hard si basta; decat sa stau de toate pretentiile fiecarui "sistem de operare" si "boot loader" cacat

    Sep 11 14:17:57 <mircea_popescu> tu, eu am de date si 2-3 partitii de os. ca asta nu e sistem de security, e de gaming. si asa se fac alea noa. ce plm acuma, pun direct un emulator de amiga zici ?
    Sep 11 14:18:28 <diana_coman> lol; eu nu mai zic nimic, ca nu-i ca n-ai dreptate acolo sau ceva.

    Sep 11 14:19:36 <mircea_popescu> mai departe, 3. nu are suport pentru absolut nimic. deci el NU are drivere care sa mearga cu realtek, care's 90% din piata de net hardware din 2010 in 2020, fara discutii. si stiu ca nu au, si stau asa. community entreprise, da-ti seama. de zece ani, citeste numa' ce "alternative" exista, "pai puteti pune direct de la realtek, da' pe urma recompilati la fiecare kernel. sau puteti pune de la puletii astia obscuri, da' e ca si cum va insurati cu ei. sau puteti..."
    Sep 11 14:20:17 <mircea_popescu> e asa, pui centos, ai 2% sanse sa-ti mearga sistemul. pai plm, cumpar cite 50 de computere odata? cum fac, ca nu exista diversitate reala, daca cumpar 50 deodata cumpar 50 aceleasi.
    Sep 11 14:20:45 <mircea_popescu> sigur, din cind in cind merge. stii ce merge cam la fel de bine ? orice, plm. adus ploaia infigindu-ti ananasi in cur merge tot asa, 2%. ca asa e meteorologia.
    Sep 11 14:21:27 <mircea_popescu> ~ fin ~
    Sep 11 14:21:28 <diana_coman> cand merge merge iar cand nu merge, sta.

    Sep 11 14:22:02 <mircea_popescu> noa, pentru aceste motive io nu cred ca centos e o solutie reala. eventual pot sa-mi cumpar exact-exact ce sistem ai tu, ceea ce la mine dureaza, ca plm, astia nu is producatori, is importatori.
    Sep 11 14:22:10 <diana_coman> n-are sens, nu []

  10. Here's some absolutely unparalelled fuming material : everyone complains about their toolset being fucking broken, overnight, for no reason ; glibc maintainer meekly asserts "it ain't his fault". Not kidding, here :

    Message #10 received at 808205@bugs.debian.org (full text, mbox, reply):
    From: Aurelien Jarno
    To: Dima Kogan , Christophe , Emmanuel Charpentier , Vlad Orlov , John Aston , Max Kellermann
    Cc: 808181@bugs.debian.org, 808205@bugs.debian.org, 808206@bugs.debian.org
    Subject: Re: Bug#808181: libc6: Upgrade can make the linker unusable
    Date: Thu, 17 Dec 2015 11:10:43 +0100

    reassign 808181 libc6-dev
    reassign 808205 libc6-dev
    forcemerge 808181 808205
    forcemerge 808181 808206
    severity 808181 serious
    thanks

    On 2015-12-16 23:36, Aurelien Jarno wrote:
    > On 2015-12-16 13:15, Dima Kogan wrote:
    > > Package: libc6
    > > Severity: normal
    > >
    > > Hi. I had
    > >
    > > libc6 = 2.19-22
    > > binutils = 2.25-4
    > >
    > > and all was well. Then I upgraded to libc6 = 2.21-4 (currently latest in
    > > sid). As a result, even the most basic build-time linking would fail.
    > > For instance, with a trivial hello-world program:
    > >
    > > $ gcc-5 -o tst tst.c
    > >
    > > /usr/bin/ld: /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o: unrecognized relocation (0x2a) in section `.init'
    > > /usr/bin/ld: final link failed: Bad value
    > > collect2: error: ld returned 1 exit status
    > >
    > > This would happen with gcc-5 and with gcc-4.9. Downgrading libc6 would
    > > fix it. After some fiddling I realized that upgrading to binutils =
    > > 2.25.90.20151209-1 (currently latest in sid) fixes it. I.e. with the
    > > latest libc6 and the latest binutils packages things work.
    >
    > The problem is not introduced by the glibc, but just by the fact that
    > it has been built with a recent binutils version which adds new
    > relocation types on i386 and amd64. This means that ALL static libraries
    > are affected by this problem.

    >
    > > Can the broken combination be prevented with some Conflicts: tags?
    > > Currently this is a trap for the unwary.
    >
    > I therefore don't think we need to fix that at the glibc level. Either
    > we just ignore the problem saying we don't support partial upgrades or
    > we try to find a global way to fix the dependencies for all libraries.

    We are working to migrate binutils version 2.25.90.20151209-1 into
    testing asap. If everything goes well it should be the case after the
    13:52 UTC dinstall run, so a few hours after that on the mirrors.

    In the meantime fetching and installing this version from sid, should
    solve the issue.

    Aurelien

    Isn't that cute ? Explain this to me : what the fuck is the point of this pointless cunt being called "Aurelien" ? What, so I can construct a relationship with this whore of an object, a "lock" in name only readily opened by any and all keys (and for that matter -- no keys at all) ? So I can be sold up, down, left & right the river at the drop of a hat -- not even a real hat, a drawing of a hat might suffice, an intimation of a hat potentially enough. Why the fuck would he be "Aurelien" to me, when he fails, evidently, deliberately, by construction and by design fails to protect my interest in the world and with it my equity in his supposed name ? Why doesn't the more adequately general "pointless cunt" denomination work as well for him as for the other ones ? Why exactly would there be a "Dima Kogan" supposedly different from a "Vlad Orlov" in turn putatively distinguishable from a "Christophe" or an "Emanuel" ? What exactly -- and please be precise in answering this -- what exactly is the difference between them ? What would be lost if I just called them all "pointless cunt", identically and indistinguishedly seeing how that is exactly what they are ? A pile of grains of salt, which all added to water melt and otherwise there sit aren't called "Joe" and "Bob". They are called a pile of grains of salt. Why's this pile-up of pointless cunts supposed to carry individual lables, I don't fucking get it, for the life of me. What do they do that in any sense distinguishes them, did any of the list raise to the absolute minimum bar of manhood at any point ? Did they say -- and yes I very much expect they'd have said this exactly, verbatim,

    hey you stupid pointless cunt, a) stop forwarding me your imbecile secretions and b) NO IT IS NOT OKAY TO HAVE YOUR SHIT BROKEN!!!! Why the fuck are you still alive while "binutils" isn't burned down yet ?

    Binutils still fucking exists past Thu, 17 Dec 2015, and "Aurelien" wasn't buried in the trenches right in front of it, so what fucking gives ?!

    But enough of the pointless cunts ; let's look instead at the poisonous shitheads, why not, let's see if blood pressure over 300 is achievable in humans. So, do you recall H J Lu ? Of Boot/Root, back in... ninety-fuckin'-two ? No ? But of course not, you weren't there, you're just here-and-now, momentarily if indistinctly befouling the world with your false memories and pseudo-identities, only to reappear, five seconds after being dispatched in a pool of your own... xylegm. Of course, of course.

    Anyways, either that H J Lu of thirty years ago -- or if not, the hollow name, the empty symbyl meanwhile absorbed into the borg ; or else I suppose the hollow clothes perambulated on a stick by some Bob Beck or other -- is "making proposals". Here, here's how "proposals" look :

    Add R_X86_64_[REX_]GOTPCRELX support to gas and ld
    author H.J. Lu
    Thu, 22 Oct 2015 11:49:20 +0000 (04:49 -0700)
    committer H.J. Lu
    Thu, 22 Oct 2015 11:49:38 +0000 (04:49 -0700)
    This patch adds support for the R_X86_64_GOTPCRELX and
    R_X86_64_REX_GOTPCRELX relocations proposed in

    https://groups.google.com/forum/#!topic/x86-64-abi/n9AWHogmVY0

    to gas and ld. It updates gas to generate R_X86_64_GOTPCRELX,
    R_X86_64_REX_GOTPCRELX if there is a REX prefix, relocation for memory
    operand, foo@GOTPCREL(%rip). With the locally defined symbol, foo, we
    convert

    mov foo@GOTPCREL(%rip), %reg

    to

    lea foo(%rip), %reg

    and convert

    call/jmp *foo@GOTPCREL(%rip)
    to

    nop call foo/jmp foo nop

    When PIC is false, convert

    test %reg, foo@GOTPCREL(%rip)
    to

    test $foo, %reg

    and convert

    binop foo@GOTPCREL(%rip), %reg

    to

    binop $foo, %reg

    where binop is one of adc, add, and, cmp, or, sbb, sub, xor instructions.

    bfd/

    * elf64-x86-64.c: Include opcode/i386.h.
    (x86_64_elf_howto_table): Add R_X86_64_GOTPCRELX and
    R_X86_64_REX_GOTPCRELX.
    (R_X86_64_standard): Replace R_X86_64_PLT32_BND with
    R_X86_64_REX_GOTPCRELX.
    (x86_64_reloc_map): Add BFD_RELOC_X86_64_GOTPCRELX and
    BFD_RELOC_X86_64_REX_GOTPCRELX.
    (need_convert_mov_to_lea): Renamed to ...
    (need_convert_load): This.
    (elf_x86_64_check_relocs): Handle R_X86_64_GOTPCRELX and
    R_X86_64_REX_GOTPCRELX. Replace need_convert_mov_to_lea with
    need_convert_load.
    (elf_x86_64_gc_sweep_hook): Handle R_X86_64_GOTPCRELX and
    R_X86_64_REX_GOTPCRELX.
    (elf_x86_64_size_dynamic_sections): Likewise.
    (elf_x86_64_relocate_section): Likewise.
    (elf_x86_64_convert_mov_to_lea): Renamed to ...
    (elf_x86_64_convert_load): This. Replace need_convert_mov_to_lea
    with need_convert_load. Support R_X86_64_GOTPCRELX and
    R_X86_64_REX_GOTPCRELX transformations.
    * reloc.c (BFD_RELOC_X86_64_GOTPCRELX): New.
    (BFD_RELOC_X86_64_REX_GOTPCRELX): Likewise.
    * bfd-in2.h: Regenerated.
    * libbfd.h: Likewise.

    gas/

    * config/tc-i386.c (tc_i386_fix_adjustable): Handle
    BFD_RELOC_X86_64_GOTPCRELX and BFD_RELOC_X86_64_REX_GOTPCRELX.
    (tc_gen_reloc): Likewise.
    (i386_validate_fix): Generate BFD_RELOC_X86_64_GOTPCRELX or
    BFD_RELOC_X86_64_REX_GOTPCRELX if fx_tcbit2 is set.
    * config/tc-i386.h (TC_FORCE_RELOCATION_LOCAL): Also return
    true for BFD_RELOC_X86_64_GOTPCRELX and
    BFD_RELOC_X86_64_REX_GOTPCRELX.

    gas/testsuite/

    * gas/i386/i386.exp: Run x86-64-gotpcrel.
    * gas/i386/x86-64-gotpcrel.d: New file.
    * gas/i386/x86-64-gotpcrel.s: Likewise.
    * gas/i386/ilp32/x86-64-gotpcrel.d: Likewise.
    * gas/i386/x86-64-localpic.d: Replace R_X86_64_GOTPCREL with
    R_X86_64_REX_GOTPCRELX.
    * gas/i386/ilp32/x86-64-localpic.d: Likewise.

    include/elf/

    * x86-64.h (R_X86_64_GOTPCRELX): New.
    (R_X86_64_REX_GOTPCRELX): Likewise.

    ld/testsuite/

    * ld-ifunc/ifunc-5r-local-x86-64.d: Replace R_X86_64_GOTPCREL
    with R_X86_64_REX_GOTPCRELX.
    * ld-x86-64/plt-main1.rd: Likewise.
    * ld-x86-64/plt-main3.rd: Likewise.
    * ld-x86-64/plt-main4.rd: Likewise.
    * ld-x86-64/gotpcrel1.dd: New file.
    * ld-x86-64/gotpcrel1.out: Likewise.
    * ld-x86-64/gotpcrel1a.S: Likewise.
    * ld-x86-64/gotpcrel1b.c: Likewise.
    * ld-x86-64/gotpcrel1c.c: Likewise.
    * ld-x86-64/gotpcrel1d.S: Likewise.
    * ld-x86-64/load1.s: Likewise.
    * ld-x86-64/load1a.d: Likewise.
    * ld-x86-64/load1b.d: Likewise.
    * ld-x86-64/load1c.d: Likewise.
    * ld-x86-64/load1d.d: Likewise.
    * ld-x86-64/x86-64.exp: Run load1a, load1b, load1c and load1d
    tests. Run gotpcrel1 test.

    X86-64 System V Application Binary Interface ›
    RFC: Add R_X86_64_GOTPCRELX and R_X86_64_REX_GOTPCRELX
    2 publicaciones por 1 autor
    H.J. Lu
    7/10/15
    Traducir mensaje al español
    X86 instruction encoding supports converting some instructions on memory
    operand with GOTPCREL relocation against symbol, foo, into a different
    form on immediate operand if foo is defined locally. Those instructions
    are:

    call *foo@GOTPCREL(%rip) => nop call foo or call foo nop
    jmp *foo@GOTPCREL(%rip) => jmp foo nop
    mov foo@GOTPCREL(%rip), %reg => lea foo(%rip), %reg

    When PIC is false,

    test %reg, foo@GOTPCREL(%rip) => test $foo, %reg
    binop foo@GOTPCREL(%rip), %reg => binop $foo, %reg

    where binop is one of adc, add, and, cmp, or, sbb, sub, xor instructions.

    I am proposing to add 2 new relocations, R_X86_64_GOTPCRELX and
    R_X86_64_REX_GOTPCRELX, to x86-64 psABI. Instead of generating
    R_X86_64_GOTPCREL relocation agasint foo for foo@GOTPCREL(%rip),
    we generate R_X86_64_GOTPCRELX or R_X86_64_REX_GOTPCRELX if there
    is a REX prefix. Linker can treat them the same as R_X86_64_GOTPCREL
    or it can perform the transformations listed above.

    Any feedbacks?

    Thanks.

    --
    H.J.
    H.J. Lu
    20/10/15
    Traducir mensaje al español
    - mostrar texto citado -
    Here are 3 patches against x86-64 psABI. The updated pdf file is
    available from

    https://github.com/hjl-tools/x86-psABI/wiki/x86-64-psABI-gotpcrelx.pdf

    They have been implemented on binutils users/hjl/got branch. I
    will check it into binutils master branch this week.

    --
    H.J.
    Archivos adjuntos (3)
    0001-Add-R_X86_64_GOTPCRELX-and-R_X86_64_REX_GOTPCRELX.patch
    3 KB Ver Descargar
    0002-Combine-GOTPLT-and-GOT-Slots.patch
    4 KB Ver Descargar
    0003-Optimize-GOTPCRELX-Relocations.patch
    2 KB Ver Descargar

    That is it. That is the fuck it, some obscure emokid/fury/poisonous fuckwit posted some shit on his wall on Myspace, asking for "any feedbacks". Exactly like they all do, but I do mean fucking exactly, there's at least fifty millions of these (if you don't count all my autogenerated ones -- which "not count" I am in a position to do, but you aren't in a position to do, for the obvious fucking reason), and they all do exactly this crap.

    There was no feedback, needless to say. Leaving alone the spurious plural, there was nothing, I'm willing to wager the situation is exactly the same seen in all other cases, since forever : I am, literally, the first person to have read either of those ; and now that I discuss it I'll thereby drive reliably six nines of all the public exposure either the piece, the supposed "author" or anything connected will ever get in their entire historical existence. Yet nevertheless -- everyone's toolchain is broken now, not that anyone even fucking understands anything of anything.

    But the toolchain's broken, factually, and it'll stay that way, not like anyone's in danger of ever noticing anything, let alone fixing anything. Exactly as in the case of anonymous "epidemiologists", who wrote some dumb shit in their online journal and now everyone's country's broken on account of bovinely herding pointless cunts (yet well fed and awareness-energized) everywhere, ever-ready to amplify every random fart into a deafening hurricane of malodourous nonsense. Exactly as in the case of "ecologists" writing some bullshit in their online journals twenty years ago such that now everyone's cars are fucking broken. Exactly as in the case of everything, from the 1970s "childhood abuse" meme to the 2010s "campus rape culture" meme, exactly as with the whole rest of "women in the marketplace" bullshit, the sad if ongoing effort of replacing Grace Hopper with "I knitted in the situation room!!!! Where were you while I was sitting and knitting a lovely pair of woolen socks in the situation room?!?!?!" sulphurous fuckwads. []

  11. If for no reason then simply because I have greater capacities for life, and generally everything than that species of sad, dry fucks. []
Category: S.MG
Comments feed : RSS 2.0. Leave your own comment below, or send a trackback.

4 Responses

  1. Mircea Popescu`s avatar
    1
    Mircea Popescu 
    Saturday, 12 September 2020

    For the record, this article makes 37 references. Their publication date's distributed from 2009 to 2020, and the average lands at 2015.297297, somewhat off from the self-obvious average of 2014.5. I suppose that .79 differential's learning, huh.

    Meanwhile in original sources,

    Sep 11 14:42:10 <mircea_popescu> atita timp cit exista femstatu' substitut de fotosinteza, uite ca se poate emula accacia-n pulete.

  2. I've got "current" Debian to finally install somewhere - its gcc is 8.3 so it beats yours!

  3. Mircea Popescu`s avatar
    3
    Mircea Popescu 
    Sunday, 13 September 2020

    I suspect the only purpose of the whole rigamarole is ye olde Microsoft "get the latest version" "market"herding strategy. None of the shit works deliberately, such that "today's magic key" can exist.

  1. [...] on the heels of having solved that gnarly compilation trouble, I ended up taking a walk through the byzantine labyrinth of bugs that may - or may not! - cause [...]

Add your cents! »
    If this is your first comment, it will wait to be approved. This usually takes a few hours. Subsequent comments are not delayed.