Posts

Showing posts from December, 2022

Project Plan - 2

INTRODUCTION  Hello, this blog is about the first version of the device that I am trying to make it. which is going to copy the function 3 times in different manner in file using auto-vectorization.The function that is given as the argument is created in three different ways by this device. When creating the main output file from these routines, this device leverages the ifunc capability to select the optimum approach. PROCEDURE  The second argument, function.c, is initially read before anything else. But before that, I used the Sys library to retrieve an array of parameters. By doing this, I was able to get the filename for both the first and second inputs. I was able to store the names of both files in two variables as a result. I then used the fopen() technique to read the function.c file. I then used std::string::find and std::string::replace to alter the function's name. After reviewing the function, I changed the function name and printed the f function three times. For Advan

GCC (GNU Compiler Collection)

 GCC What is GCC? In simple words we can say a  collection of compilers and development tools for Linux, Windows, multiple BSDs, and a plethora of other operating systems is offered by the GNU Compiler Collection, or GCC. Along with support for Objective-C, Ada, Go, Fortran, and D, it primarily supports C and C++. GCC was created by the Free Software Foundation (FSF) and made available as totally free (as in libre) software. How does it work? The GCC toolchain assembles the executable once the code has been compiled, linked with the required libraries, and translated into an assembler. It adheres to the traditional UNIX design principle of using simple tools that perform specific tasks effectively. These proprietary tools are used to compile software using the GCC development suite. GCC uses a preprocessor to add header files and remove comments before executing source code files. The code is then tokenized, macros expanded, compile-time errors detected, and ready to compile. They are

ifunc function

IFUNC What is IFUNC? With the aid of a resolver function that was also written by the developer, numerous implementations of a particular function can be created using the GNU indirect function support (IFUNC) feature of the GNU toolchain. During early startup, the dynamic loader calls the resolver function to determine which implementation the application will use. Once a decision on implementation is made, it cannot be modified for the duration of the procedure. How to use it? As you can see, there are already a few limitations on how IFUNC can be used.                                                             It is t he implementations and the resolver must both be defined in the same translation unit. functions that cannot be weakly specified.    Since the resolution of an IFUNC might occur very early in the dynamic loader startup process, especially if -Wl,z,now is used to generate the application, the limitations are actually stricter than this (requires all symbols be resolved